/*
 * 描          述:  <描述>
 * 修  改   人:  PengQingyang
 * 修改时间:  2022年5月12日
 * <修改描述:>
 */
package com.tx.component.sendsms.plugin;

import org.springframework.core.PriorityOrdered;

import com.tx.component.communication.model.SendResult;
import com.tx.component.sendsms.model.SendSMSWithTemplateRequest;

/**
 * 模板发送短信方言类<br/>
 * <功能详细描述>
 * 
 * @author  PengQingyang
 * @version  [版本号, 2022年5月12日]
 * @see  [相关类/方法]
 * @since  [产品/模块版本]
 */
public interface SendSMSWithTemplateHandler extends PriorityOrdered {
    
    /**
     * handler是否启用<br/>
     * <功能详细描述>
     * @return [参数说明]
     * 
     * @return boolean [返回类型说明]
     * @exception throws [异常类型] [异常说明]
     * @see [类、类#方法、类#成员]
     */
    public boolean isEnable();
    
    /**
     * 是否支持对应的短信发送<br/>
     * <功能详细描述>
     * @param message
     * @return [参数说明]
     * 
     * @return boolean [返回类型说明]
     * @exception throws [异常类型] [异常说明]
     * @see [类、类#方法、类#成员]
     */
    public boolean supports(SendSMSWithTemplateRequest request);
    
    /**
     * 消息发送器<br/>
     * <功能详细描述>
     * @param sendMessage [参数说明]
     * 
     * @return void [返回类型说明]
     * @exception throws [异常类型] [异常说明]
     * @see [类、类#方法、类#成员]
     */
    public SendResult sendWithTemplate(SendSMSWithTemplateRequest request);
}
